package pe.mutacion;

import pe.algenetico.MiRandom;
import pe.cromosoma.Cromosoma;

public class Intercambio extends MutacionPadre{

	public Cromosoma mutar(Cromosoma individuo, MiRandom ran,  int param){
		
		//Hallamos los puntos de cruce
		int punto_cruce1 = ran.r.nextInt(individuo.getLong_cromo());
		int punto_cruce2 = ran.r.nextInt(individuo.getLong_cromo());
		if(punto_cruce1>punto_cruce2){
			int aux=punto_cruce1;
			punto_cruce1=punto_cruce2;
			punto_cruce2=aux;
		}
		
		//Intercambiamos punto de cruce 1 con punto de 2
		int aux = individuo.getIndices()[punto_cruce1];
		individuo.getIndices()[punto_cruce1]=individuo.getIndices()[punto_cruce2];
		individuo.getIndices()[punto_cruce2]=aux;
		
		//Reevaluamos
		individuo.setAptitud(individuo.evalua());
		
		return individuo;
	}


}
